While Microsoft is busy trying to move the 16-bit DOS-based personal computer world to the 32-bit world of Windows 95 and NT, innovative X workstation vendors are already transitioning their 32-bit product lines to 64-bit architectures. 64-bit computing means these newer machines can operate on data in 64-bit chunks for more efficient processing and permit programs to utilize huge virtual address spaces. And usually, these systems are designed to handle enormous files far in excess of two gigabytes. The move to 64-bit makes workstations more like traditional supercomputers.
While workstation vendors have often claimed near supercomputer performance from their machines, supercomputing is more than fast arithmetic. To be a supercomputer, fast computations must be coupled with the ability to operate on the voluminous quantities of data that supercomputing applications use and generate. 64-bit systems make true supercomputing and hugely data intensive applications feasible on computers that are more like conventional Unix workstations than highly specialized and expensive supercomputers. These more cost-effective 64-bit systems open up new computing possibilities beyond traditional supercomputing applications. Huge-scale databases with sophisticated query engines, real-time video services, and faster conventional workstation applications are all possible with these new 64-bit systems.
The two X workstation vendors that already deliver 64-bit systems are
Digital Equipment Corp. and Silicon Graphics, Inc. (SGI). Digital's
Alpha-based workstations and servers run a 64-bit version of OSF/1, recently
renamed Digital Unix. SGI's R8000-based Power Challenge, Power Onyx,
and Power Indigo machines run the 64-bit IRIX 6.0.1 operating
system. The next release of IRIX will provide 64-bit system support
for some configurations using the R4000 family of processors. Other
major workstations vendors have plans for 64-bit systems in the future.
Just because a computer has a 64-bit processor does not make it a 64-bit system. There are three fundamental requirements a computer system must meet to be called a 64-bit system. It must have:
Digital made a wholesale switch to 64-bit systems in their Unix product line when Digital adopted the Alpha processor. This approach avoids much of the baggage of carrying forward 32-bit compatibility.
While SGI has been shipping workstations using the R4000 family of 64-bit processors for over three years, these machines shipped with a 32-bit operating system. Even so, by shipping 64-bit hardware, SGI is in a significantly better position than other vendors who continue to grow their 32-bit installed hardware base. Transitioning SGI's product line to true 64-bit systems is easier when much of SGI's installed base of machines already have 64-bit capable hardware.
The material presented here focuses on how the coming transition to 64-bit in the workstation world affects X programmers coding in C or C++. The transition to 64-bit will be much easier if you are aware of how 64-bit systems affect the X Window System and the X code you write. Even if you have no immediate plans to use 64-bit systems, the code you write today may be ported to future 64-bit systems. If written correctly, the necessary porting effort can be greatly eased.
This article is structured in three sections. The first section explains the options and advantages for using 64-bit systems. In particular, how a 64-bit programming model changes the sizes of fundamental C data types is discussed. Then, the second section explores the kinds of general portability problems introduced by 64-bit data types. The last section details how 64-bit systems affect the X Window System and how to avoid 64-bit portability pitfalls specific to X programming interfaces.